|
![](/i/fill.gif) |
Nikolaj K. Holm wrote:
> I'm quite new in povray, so I tried to search the list for this but without
> any luck. Here we go..
>
> I have an object - a sphere - which I want to have repeated at different
> sizes and at different positions to simulate bubbles in water. I got the
> water and a single bubble looking the way I want but is there a simpler way
> to repeat this object making the scale and position changing at random?
Actually, your search could have turned up my recent
sparkling water experiments:
http://news.povray.org/povray.binaries.images/message/%3C45d0d486%40news.povray.org%3E/#%3C45d0d486%40news.povray.org%3E
Here is a snippet of SDL to show how I generated the bubble object
which is to be subtracted from the liquid). Note that all bubbles
form one blob object, which renders a lot faster but is not really
perceptibly different from using individual bubbles.
#declare GLASS_RADIUS = 0.70;
#declare WATER_LEVEL = 2.80;
#declare BUBBLE_COUNT = 600;
#declare BUBBLE_RADIUS = 0.03;
#declare R = seed(42);
#declare BUBBLE_SHAPE = blob
{
#local i = 0;
#while (i < BUBBLE_COUNT)
#local phi = 2*pi*rand(R);
#local d = rand(R) * GLASS_RADIUS;
#if (d > GLASS_RADIUS)
#local d = GLASS_RADIUS; /* 50% of bubbles at rim */
#end
#local h = rand(R) * WATER_LEVEL;
#local r = 0.5 + 0.5 * rand(R);
#local r = r * r * BUBBLE_RADIUS; /* More small bubbles */
sphere {d*<cos(phi),0,sin(phi)> + h*y,r,1}
#local i = i + 1;
#end
threshold 0.6
}
Post a reply to this message
|
![](/i/fill.gif) |